home *** CD-ROM | disk | FTP | other *** search
/ Champak 138 / Volume 138 Aug 19 2011 - Damaged.iso / Games / shadez.swf / scripts / Local / External / CMG / MD5.as next >
Encoding:
Text File  |  2011-08-19  |  31.4 KB  |  873 lines

  1. package Local.External.CMG
  2. {
  3.    public class MD5
  4.    {
  5.       
  6.       public static var hexcase:uint = 0;
  7.       
  8.       public static const HEX_FORMAT_LOWERCASE:uint = 0;
  9.       
  10.       public static const HEX_FORMAT_UPPERCASE:uint = 1;
  11.       
  12.       public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = "";
  13.       
  14.       public static var b64pad:String = "";
  15.       
  16.       public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "=";
  17.        
  18.       
  19.       public function MD5()
  20.       {
  21.          super();
  22.       }
  23.       
  24.       public static function md5_gg(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  25.       {
  26.          ┬º┬ºpush(┬º┬ºfindproperty(md5_cmn));
  27.          ┬º┬ºpush(param2 & param4);
  28.          if(true)
  29.          {
  30.             ┬º┬ºpush(┬º┬ºpop() | param3 & ~param4);
  31.          }
  32.          return ┬º┬ºpop().md5_cmn(┬º┬ºpop(),param1,param2,param5,param6,param7);
  33.       }
  34.       
  35.       public static function md5_cmn(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number) : Number
  36.       {
  37.          return safe_add(bit_rol(safe_add(safe_add(param2,param1),safe_add(param4,param6)),param5),param3);
  38.       }
  39.       
  40.       public static function binl_md5(param1:Array, param2:Number) : Array
  41.       {
  42.          var _loc3_:Number = NaN;
  43.          var _loc4_:Number = NaN;
  44.          var _loc5_:Number = NaN;
  45.          var _loc6_:Number = NaN;
  46.          var _loc7_:Number = NaN;
  47.          var _loc8_:Number = NaN;
  48.          var _loc9_:Number = NaN;
  49.          var _loc10_:Number = NaN;
  50.          var _loc11_:Number = NaN;
  51.          param1[param2 >> 5] |= 128 << param2 % 32;
  52.          param1[(param2 + 64 >>> 9 << 4) + 14] = param2;
  53.          _loc3_ = 1732584193;
  54.          _loc4_ = -271733879;
  55.          _loc5_ = -1732584194;
  56.          _loc6_ = 271733878;
  57.          _loc7_ = 0;
  58.          loop0:
  59.          while(true)
  60.          {
  61.             ┬º┬ºpush(_loc7_);
  62.             while(true)
  63.             {
  64.                if(┬º┬ºpop() >= param1.length)
  65.                {
  66.                   ┬º┬ºpush(_loc3_);
  67.                   break;
  68.                }
  69.                ┬º┬ºpush(_loc3_);
  70.                if(false)
  71.                {
  72.                   break;
  73.                }
  74.                ┬º┬ºpush(┬º┬ºpop());
  75.                if(true)
  76.                {
  77.                   continue loop0;
  78.                }
  79.             }
  80.             return null;
  81.          }
  82.       }
  83.       
  84.       public static function str2rstr_utf16le(param1:String) : String
  85.       {
  86.          var _loc2_:String = null;
  87.          var _loc3_:Number = NaN;
  88.          _loc2_ = "";
  89.          _loc3_ = 0;
  90.          loop0:
  91.          while(true)
  92.          {
  93.             ┬º┬ºpush(_loc3_);
  94.             while(┬º┬ºpop() < param1.length)
  95.             {
  96.                _loc2_ += String.fromCharCode(param1.charCodeAt(_loc3_) & 255,param1.charCodeAt(_loc3_) >>> 8 & 255);
  97.                if(false)
  98.                {
  99.                   break;
  100.                }
  101.                ┬º┬ºpush(_loc3_);
  102.                if(true)
  103.                {
  104.                   continue loop0;
  105.                }
  106.             }
  107.             return _loc2_;
  108.          }
  109.       }
  110.       
  111.       public static function hex_hmac_md5(param1:String, param2:String) : String
  112.       {
  113.          return rstr2hex(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)));
  114.       }
  115.       
  116.       public static function binl2rstr(param1:Array) : String
  117.       {
  118.          var _loc2_:String = null;
  119.          var _loc3_:Number = NaN;
  120.          _loc2_ = "";
  121.          _loc3_ = 0;
  122.          loop0:
  123.          while(true)
  124.          {
  125.             ┬º┬ºpush(_loc3_);
  126.             while(┬º┬ºpop() < param1.length * 32)
  127.             {
  128.                _loc2_ += String.fromCharCode(param1[_loc3_ >> 5] >>> _loc3_ % 32 & 255);
  129.                ┬º┬ºpush(_loc3_);
  130.                if(true)
  131.                {
  132.                   continue loop0;
  133.                }
  134.             }
  135.             return _loc2_;
  136.          }
  137.       }
  138.       
  139.       public static function md5_ff(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  140.       {
  141.          ┬º┬ºpush(┬º┬ºfindproperty(md5_cmn));
  142.          ┬º┬ºpush(param2 & param3);
  143.          if(true)
  144.          {
  145.             ┬º┬ºpush(~param2);
  146.             if(true)
  147.             {
  148.                ┬º┬ºpush(┬º┬ºpop() & param4);
  149.             }
  150.             ┬º┬ºpush(┬º┬ºpop() | ┬º┬ºpop());
  151.          }
  152.          return ┬º┬ºpop().md5_cmn(┬º┬ºpop(),param1,param2,param5,param6,param7);
  153.       }
  154.       
  155.       public static function md5_ii(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  156.       {
  157.          return md5_cmn(param3 ^ (param2 | ~param4),param1,param2,param5,param6,param7);
  158.       }
  159.       
  160.       public static function rstr2binl(param1:String) : Array
  161.       {
  162.          var _loc2_:Array = null;
  163.          var _loc3_:* = NaN;
  164.          _loc2_ = new Array(param1.length >> 2);
  165.          _loc3_ = 0;
  166.          loop0:
  167.          while(true)
  168.          {
  169.             ┬º┬ºpush(_loc3_);
  170.             if(true)
  171.             {
  172.                if(┬º┬ºpop() >= _loc2_.length)
  173.                {
  174.                   if(true)
  175.                   {
  176.                      _loc3_ = 0;
  177.                      addr92:
  178.                      while(true)
  179.                      {
  180.                         ┬º┬ºpush(_loc3_);
  181.                         addr93:
  182.                         while(true)
  183.                         {
  184.                            if(┬º┬ºpop() >= param1.length * 8)
  185.                            {
  186.                               ┬º┬ºgoto(addr105);
  187.                            }
  188.                            _loc2_[_loc3_ >> 5] |= (param1.charCodeAt(_loc3_ / 8) & 255) << _loc3_ % 32;
  189.                         }
  190.                      }
  191.                      addr92:
  192.                   }
  193.                   while(true)
  194.                   {
  195.                      ┬º┬ºpush(_loc3_);
  196.                      break loop0;
  197.                   }
  198.                }
  199.                else
  200.                {
  201.                   _loc2_[_loc3_] = 0;
  202.                   if(true)
  203.                   {
  204.                      ┬º┬ºpush(_loc3_);
  205.                      if(true)
  206.                      {
  207.                         ┬º┬ºpush(┬º┬ºpop() + 1);
  208.                         if(true)
  209.                         {
  210.                            ┬º┬ºpush(┬º┬ºpop());
  211.                            if(true)
  212.                            {
  213.                               _loc3_ = ┬º┬ºpop();
  214.                               if(true)
  215.                               {
  216.                                  continue;
  217.                               }
  218.                               ┬º┬ºgoto(addr92);
  219.                            }
  220.                            while(true)
  221.                            {
  222.                               ┬º┬ºpush(┬º┬ºpop());
  223.                               break loop0;
  224.                            }
  225.                            addr105:
  226.                            return _loc2_;
  227.                            addr90:
  228.                         }
  229.                         while(true)
  230.                         {
  231.                            _loc3_ = ┬º┬ºpop();
  232.                            ┬º┬ºgoto(addr92);
  233.                         }
  234.                      }
  235.                      ┬º┬ºgoto(addr93);
  236.                   }
  237.                }
  238.                ┬º┬ºgoto(addr105);
  239.             }
  240.             break;
  241.          }
  242.          while(true)
  243.          {
  244.             ┬º┬ºgoto(addr90);
  245.          }
  246.       }
  247.       
  248.       public static function md5_vm_test() : Boolean
  249.       {
  250.          return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
  251.       }
  252.       
  253.       public static function b64_md5(param1:String) : String
  254.       {
  255.          return rstr2b64(rstr_md5(str2rstr_utf8(param1)));
  256.       }
  257.       
  258.       public static function any_hmac_md5(param1:String, param2:String, param3:String) : String
  259.       {
  260.          return rstr2any(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)),param3);
  261.       }
  262.       
  263.       public static function hex_md5(param1:String) : String
  264.       {
  265.          return rstr2hex(rstr_md5(str2rstr_utf8(param1)));
  266.       }
  267.       
  268.       public static function bit_rol(param1:Number, param2:Number) : Number
  269.       {
  270.          return param1 << param2 | param1 >>> 32 - param2;
  271.       }
  272.       
  273.       public static function encrypt(param1:String) : String
  274.       {
  275.          return hex_md5(param1);
  276.       }
  277.       
  278.       public static function md5_hh(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
  279.       {
  280.          ┬º┬ºpush(┬º┬ºfindproperty(md5_cmn));
  281.          ┬º┬ºpush(param2 ^ param3);
  282.          if(true)
  283.          {
  284.             ┬º┬ºpush(param4);
  285.             if(true)
  286.             {
  287.                addr26:
  288.                ┬º┬ºpush(┬º┬ºpop() ^ ┬º┬ºpop());
  289.                ┬º┬ºpush(param1);
  290.             }
  291.             return ┬º┬ºpop().md5_cmn(┬º┬ºpop(),┬º┬ºpop(),param2,param5,param6,param7);
  292.          }
  293.          ┬º┬ºgoto(addr26);
  294.       }
  295.       
  296.       public static function rstr2hex(param1:String) : String
  297.       {
  298.          var _loc2_:String = null;
  299.          var _loc3_:* = null;
  300.          var _loc4_:Number = NaN;
  301.          var _loc5_:Number = NaN;
  302.          _loc2_ = !!hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  303.          _loc3_ = "";
  304.          _loc5_ = 0;
  305.          while(true)
  306.          {
  307.             if(_loc5_ >= param1.length)
  308.             {
  309.                ┬º┬ºpush(_loc3_);
  310.                break;
  311.             }
  312.             ┬º┬ºpush(param1);
  313.             if(false)
  314.             {
  315.                break;
  316.             }
  317.             _loc4_ = Number(┬º┬ºpop().charCodeAt(_loc5_));
  318.             ┬º┬ºpush(_loc3_);
  319.             if(true)
  320.             {
  321.                ┬º┬ºpush(┬º┬ºpop() + (_loc2_.charAt(_loc4_ >>> 4 & 15) + _loc2_.charAt(_loc4_ & 15)));
  322.             }
  323.             _loc3_ = ┬º┬ºpop();
  324.             _loc5_++;
  325.          }
  326.          return ┬º┬ºpop();
  327.       }
  328.       
  329.       public static function any_md5(param1:String, param2:String) : String
  330.       {
  331.          return rstr2any(rstr_md5(str2rstr_utf8(param1)),param2);
  332.       }
  333.       
  334.       public static function b64_hmac_md5(param1:String, param2:String) : String
  335.       {
  336.          return rstr2b64(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)));
  337.       }
  338.       
  339.       public static function rstr2b64(param1:String) : String
  340.       {
  341.          var _loc2_:String = null;
  342.          var _loc3_:* = null;
  343.          var _loc4_:Number = NaN;
  344.          var _loc5_:Number = NaN;
  345.          var _loc6_:* = NaN;
  346.          var _loc7_:* = NaN;
  347.          _loc2_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  348.          if(true)
  349.          {
  350.             _loc3_ = "";
  351.             if(true)
  352.             {
  353.                _loc4_ = param1.length;
  354.             }
  355.             _loc5_ = 0;
  356.          }
  357.          loop0:
  358.          while(true)
  359.          {
  360.             ┬º┬ºpush(_loc5_);
  361.             while(true)
  362.             {
  363.                if(┬º┬ºpop() >= _loc4_)
  364.                {
  365.                   ┬º┬ºpush(_loc3_);
  366.                   break;
  367.                }
  368.                ┬º┬ºpush(param1);
  369.                if(false)
  370.                {
  371.                   break;
  372.                }
  373.                ┬º┬ºpush(┬º┬ºpop().charCodeAt(_loc5_) << 16);
  374.                if(true)
  375.                {
  376.                   ┬º┬ºpush(_loc5_);
  377.                   ┬º┬ºpush(1);
  378.                   if(true)
  379.                   {
  380.                      if(┬º┬ºpop() + ┬º┬ºpop() < _loc4_)
  381.                      {
  382.                         if(true)
  383.                         {
  384.                            ┬º┬ºpush(param1);
  385.                            if(true)
  386.                            {
  387.                               addr70:
  388.                               ┬º┬ºpush(┬º┬ºpop() | ┬º┬ºpop().charCodeAt(_loc5_ + 1) << 8);
  389.                               if(true)
  390.                               {
  391.                                  addr95:
  392.                                  ┬º┬ºpush(┬º┬ºpop() | (_loc5_ + 2 < _loc4_ ? int(param1.charCodeAt(_loc5_ + 2)) : 0));
  393.                                  if(false)
  394.                                  {
  395.                                     continue;
  396.                                  }
  397.                                  _loc6_ = ┬º┬ºpop();
  398.                                  addr100:
  399.                                  ┬º┬ºpush(0);
  400.                                  if(false)
  401.                                  {
  402.                                     continue loop0;
  403.                                  }
  404.                                  _loc7_ = ┬º┬ºpop();
  405.                                  loop2:
  406.                                  while(true)
  407.                                  {
  408.                                     ┬º┬ºpush(_loc7_);
  409.                                     while(true)
  410.                                     {
  411.                                        if(┬º┬ºpop() < 4)
  412.                                        {
  413.                                           ┬º┬ºpush(_loc5_);
  414.                                           if(true)
  415.                                           {
  416.                                              ┬º┬ºpush(┬º┬ºpop() * 8);
  417.                                              if(false)
  418.                                              {
  419.                                                 addr159:
  420.                                                 ┬º┬ºpush(┬º┬ºpop() + 3);
  421.                                                 break;
  422.                                              }
  423.                                              ┬º┬ºpush(┬º┬ºpop() + _loc7_ * 6);
  424.                                              if(false)
  425.                                              {
  426.                                                 continue;
  427.                                              }
  428.                                              if(┬º┬ºpop() > param1.length * 8)
  429.                                              {
  430.                                                 ┬º┬ºpush(_loc3_);
  431.                                                 if(true)
  432.                                                 {
  433.                                                    ┬º┬ºpush(┬º┬ºpop() + b64pad);
  434.                                                    if(true)
  435.                                                    {
  436.                                                       _loc3_ = ┬º┬ºpop();
  437.                                                       continue loop2;
  438.                                                    }
  439.                                                    addr135:
  440.                                                    ┬º┬ºpush(┬º┬ºpop() + _loc2_.charAt(_loc6_ >>> 6 * (3 - _loc7_) & 63));
  441.                                                 }
  442.                                                 _loc3_ = ┬º┬ºpop();
  443.                                                 continue loop2;
  444.                                              }
  445.                                              ┬º┬ºpush(_loc3_);
  446.                                              ┬º┬ºgoto(addr135);
  447.                                           }
  448.                                           break;
  449.                                        }
  450.                                        ┬º┬ºpush(_loc5_);
  451.                                        ┬º┬ºgoto(addr159);
  452.                                     }
  453.                                     continue loop0;
  454.                                  }
  455.                               }
  456.                            }
  457.                            ┬º┬ºgoto(addr79);
  458.                         }
  459.                         ┬º┬ºgoto(addr95);
  460.                      }
  461.                      else
  462.                      {
  463.                         ┬º┬ºpush(0);
  464.                      }
  465.                      ┬º┬ºgoto(addr70);
  466.                   }
  467.                   ┬º┬ºgoto(addr95);
  468.                }
  469.                ┬º┬ºgoto(addr100);
  470.             }
  471.             return ┬º┬ºpop();
  472.          }
  473.       }
  474.       
  475.       public static function safe_add(param1:Number, param2:Number) : Number
  476.       {
  477.          var _loc3_:Number = NaN;
  478.          var _loc4_:* = NaN;
  479.          if(true)
  480.          {
  481.             ┬º┬ºpush(param1 & 65535);
  482.             ┬º┬ºpush(param2);
  483.             if(true)
  484.             {
  485.                _loc3_ = ┬º┬ºpop() + (┬º┬ºpop() & 65535);
  486.                addr33:
  487.                ┬º┬ºpush((param1 >> 16) + (param2 >> 16));
  488.                ┬º┬ºpush(_loc3_);
  489.                if(true)
  490.                {
  491.                   ┬º┬ºpush(┬º┬ºpop() + (┬º┬ºpop() >> 16));
  492.                   ┬º┬ºpush(┬º┬ºpop() + (┬º┬ºpop() >> 16));
  493.                }
  494.                _loc4_ = ┬º┬ºpop();
  495.                ┬º┬ºpush(┬º┬ºpop() << 16);
  496.                ┬º┬ºpush(_loc3_);
  497.             }
  498.             return ┬º┬ºpop() | ┬º┬ºpop() & 65535;
  499.          }
  500.          ┬º┬ºgoto(addr33);
  501.       }
  502.       
  503.       public static function str2rstr_utf8(param1:String) : String
  504.       {
  505.          var _loc2_:* = null;
  506.          var _loc3_:* = NaN;
  507.          var _loc4_:Number = NaN;
  508.          var _loc5_:Number = NaN;
  509.          _loc2_ = "";
  510.          _loc3_ = -1;
  511.          loop0:
  512.          while(true)
  513.          {
  514.             ┬º┬ºpush(_loc3_ + 1);
  515.             ┬º┬ºpush(_loc3_ + 1);
  516.             loop1:
  517.             while(true)
  518.             {
  519.                _loc3_ = ┬º┬ºpop();
  520.                ┬º┬ºpush(param1);
  521.                while(┬º┬ºpop() < ┬º┬ºpop().length)
  522.                {
  523.                   ┬º┬ºpush(param1);
  524.                   if(false)
  525.                   {
  526.                      ┬º┬ºgoto(addr249);
  527.                   }
  528.                   _loc4_ = Number(┬º┬ºpop().charCodeAt(_loc3_));
  529.                   if(false)
  530.                   {
  531.                      break;
  532.                   }
  533.                   ┬º┬ºpush(_loc3_ + 1);
  534.                   ┬º┬ºpush(param1);
  535.                   if(false)
  536.                   {
  537.                      continue;
  538.                   }
  539.                   ┬º┬ºpush(┬º┬ºpop() < ┬º┬ºpop().length);
  540.                   if(true)
  541.                   {
  542.                      if(┬º┬ºpop())
  543.                      {
  544.                         if(false)
  545.                         {
  546.                            continue loop0;
  547.                         }
  548.                         ┬º┬ºpush(param1);
  549.                         if(true)
  550.                         {
  551.                            addr58:
  552.                            _loc5_ = Number(┬º┬ºpop().charCodeAt(_loc3_ + 1));
  553.                            if(true)
  554.                            {
  555.                               ┬º┬ºpush(55296);
  556.                               ┬º┬ºpush(_loc4_);
  557.                               if(true)
  558.                               {
  559.                                  ┬º┬ºpush(┬º┬ºpop() <= ┬º┬ºpop());
  560.                                  if(true)
  561.                                  {
  562.                                     if(┬º┬ºpop())
  563.                                     {
  564.                                        if(true)
  565.                                        {
  566.                                           ┬º┬ºpop();
  567.                                           if(true)
  568.                                           {
  569.                                              ┬º┬ºpush(_loc4_ <= 56319);
  570.                                              if(true)
  571.                                              {
  572.                                                 addr81:
  573.                                                 if(┬º┬ºpop())
  574.                                                 {
  575.                                                 }
  576.                                                 addr89:
  577.                                                 if(┬º┬ºpop())
  578.                                                 {
  579.                                                    addr91:
  580.                                                    ┬º┬ºpop();
  581.                                                    if(true)
  582.                                                    {
  583.                                                       addr97:
  584.                                                       if(_loc5_ <= 57343)
  585.                                                       {
  586.                                                          if(true)
  587.                                                          {
  588.                                                             addr102:
  589.                                                             ┬º┬ºpush(65536 + ((_loc4_ & 1023) << 10));
  590.                                                             ┬º┬ºpush(_loc5_);
  591.                                                             if(true)
  592.                                                             {
  593.                                                                _loc4_ = ┬º┬ºpop() + (┬º┬ºpop() & 1023);
  594.                                                                if(true)
  595.                                                                {
  596.                                                                   _loc3_++;
  597.                                                                   if(true)
  598.                                                                   {
  599.                                                                      break loop1;
  600.                                                                   }
  601.                                                                   addr133:
  602.                                                                   ┬º┬ºpush(_loc2_);
  603.                                                                   if(false)
  604.                                                                   {
  605.                                                                      addr232:
  606.                                                                      _loc2_ = ┬º┬ºpop() + String.fromCharCode(240 | _loc4_ >>> 18 & 7,128 | _loc4_ >>> 12 & 63,128 | _loc4_ >>> 6 & 63,128 | _loc4_ & 63);
  607.                                                                      addr202:
  608.                                                                      continue loop0;
  609.                                                                   }
  610.                                                                   ┬º┬ºpush(┬º┬ºpop() + String.fromCharCode(_loc4_));
  611.                                                                   if(false)
  612.                                                                   {
  613.                                                                      addr196:
  614.                                                                      _loc2_ = ┬º┬ºpop();
  615.                                                                      continue loop0;
  616.                                                                   }
  617.                                                                   _loc2_ = ┬º┬ºpop();
  618.                                                                }
  619.                                                                continue loop0;
  620.                                                             }
  621.                                                             continue loop1;
  622.                                                          }
  623.                                                          addr148:
  624.                                                          ┬º┬ºpush(_loc2_);
  625.                                                          if(true)
  626.                                                          {
  627.                                                             _loc2_ = ┬º┬ºpop() + String.fromCharCode(192 | _loc4_ >>> 6 & 31,128 | _loc4_ & 63);
  628.                                                             addr168:
  629.                                                             continue loop0;
  630.                                                          }
  631.                                                          addr173:
  632.                                                          addr173:
  633.                                                          ┬º┬ºgoto(addr196);
  634.                                                          ┬º┬ºpush(┬º┬ºpop() + String.fromCharCode(224 | _loc4_ >>> 12 & 15,128 | _loc4_ >>> 6 & 63,128 | _loc4_ & 63));
  635.                                                       }
  636.                                                       break loop1;
  637.                                                    }
  638.                                                    ┬º┬ºgoto(addr168);
  639.                                                 }
  640.                                                 ┬º┬ºgoto(addr97);
  641.                                              }
  642.                                              ┬º┬ºpop();
  643.                                              addr172:
  644.                                              if(true)
  645.                                              {
  646.                                                 ┬º┬ºgoto(addr89);
  647.                                                 ┬º┬ºpush(56320 <= _loc5_);
  648.                                              }
  649.                                              ┬º┬ºgoto(addr173);
  650.                                              ┬º┬ºpush(_loc2_);
  651.                                           }
  652.                                           ┬º┬ºgoto(addr196);
  653.                                        }
  654.                                        ┬º┬ºgoto(addr89);
  655.                                     }
  656.                                     ┬º┬ºgoto(addr81);
  657.                                  }
  658.                                  ┬º┬ºgoto(addr91);
  659.                               }
  660.                               ┬º┬ºgoto(addr102);
  661.                            }
  662.                            ┬º┬ºgoto(addr202);
  663.                            ┬º┬ºpush(_loc2_);
  664.                         }
  665.                         ┬º┬ºgoto(addr232);
  666.                      }
  667.                      else
  668.                      {
  669.                         ┬º┬ºpush(0);
  670.                      }
  671.                      ┬º┬ºgoto(addr58);
  672.                   }
  673.                   ┬º┬ºgoto(addr97);
  674.                }
  675.                addr249:
  676.                return ┬º┬ºpop();
  677.             }
  678.             if(_loc4_ <= 127)
  679.             {
  680.                ┬º┬ºgoto(addr133);
  681.             }
  682.             else
  683.             {
  684.                if(_loc4_ <= 2047)
  685.                {
  686.                   ┬º┬ºgoto(addr148);
  687.                }
  688.                else if(_loc4_ <= 65535)
  689.                {
  690.                   ┬º┬ºgoto(addr172);
  691.                }
  692.                else
  693.                {
  694.                   if(_loc4_ > 2097151)
  695.                   {
  696.                      continue;
  697.                   }
  698.                   ┬º┬ºgoto(addr58);
  699.                }
  700.                ┬º┬ºgoto(addr173);
  701.             }
  702.          }
  703.       }
  704.       
  705.       public static function rstr_hmac_md5(param1:String, param2:String) : String
  706.       {
  707.          var _loc3_:Array = null;
  708.          var _loc4_:Array = null;
  709.          var _loc5_:Array = null;
  710.          var _loc6_:* = NaN;
  711.          var _loc7_:Array = null;
  712.          _loc3_ = rstr2binl(param1);
  713.          if(_loc3_.length > 16)
  714.          {
  715.             _loc3_ = binl_md5(_loc3_,param1.length * 8);
  716.          }
  717.          _loc4_ = new Array(16);
  718.          _loc5_ = new Array(16);
  719.          _loc6_ = 0;
  720.          while(true)
  721.          {
  722.             ┬º┬ºpush(_loc6_);
  723.             while(true)
  724.             {
  725.                if(┬º┬ºpop() < 16)
  726.                {
  727.                   _loc4_[_loc6_] = _loc3_[_loc6_] ^ 909522486;
  728.                   if(true)
  729.                   {
  730.                      _loc5_[_loc6_] = _loc3_[_loc6_] ^ 1549556828;
  731.                      if(false)
  732.                      {
  733.                         break;
  734.                      }
  735.                      ┬º┬ºpush(_loc6_);
  736.                      if(true)
  737.                      {
  738.                         ┬º┬ºpush(┬º┬ºpop() + 1);
  739.                         if(true)
  740.                         {
  741.                            ┬º┬ºpush(┬º┬ºpop());
  742.                         }
  743.                         _loc6_ = ┬º┬ºpop();
  744.                         break;
  745.                      }
  746.                      continue;
  747.                   }
  748.                }
  749.                _loc7_ = binl_md5(_loc4_.concat(rstr2binl(param2)),512 + param2.length * 8);
  750.                return binl2rstr(binl_md5(_loc5_.concat(_loc7_),512 + 128));
  751.             }
  752.          }
  753.       }
  754.       
  755.       public static function str2rstr_utf16be(param1:String) : String
  756.       {
  757.          var _loc2_:String = null;
  758.          var _loc3_:Number = NaN;
  759.          _loc2_ = "";
  760.          _loc3_ = 0;
  761.          loop0:
  762.          while(true)
  763.          {
  764.             ┬º┬ºpush(_loc3_);
  765.             while(true)
  766.             {
  767.                if(┬º┬ºpop() >= param1.length)
  768.                {
  769.                   ┬º┬ºpush(_loc2_);
  770.                   break;
  771.                }
  772.                ┬º┬ºpush(_loc2_);
  773.                if(false)
  774.                {
  775.                   break;
  776.                }
  777.                _loc2_ = ┬º┬ºpop() + String.fromCharCode(param1.charCodeAt(_loc3_) >>> 8 & 255,param1.charCodeAt(_loc3_) & 255);
  778.                ┬º┬ºpush(_loc3_);
  779.                if(true)
  780.                {
  781.                   continue loop0;
  782.                }
  783.             }
  784.             return ┬º┬ºpop();
  785.          }
  786.       }
  787.       
  788.       public static function rstr2any(param1:String, param2:String) : String
  789.       {
  790.          var _loc3_:Number = NaN;
  791.          var _loc4_:Array = null;
  792.          var _loc5_:Number = NaN;
  793.          var _loc6_:Number = NaN;
  794.          var _loc7_:Number = NaN;
  795.          var _loc8_:Array = null;
  796.          var _loc9_:Array = null;
  797.          var _loc10_:String = null;
  798.          _loc3_ = param2.length;
  799.          _loc4_ = [];
  800.          _loc9_ = new Array(param1.length / 2);
  801.          if(true)
  802.          {
  803.             _loc5_ = 0;
  804.          }
  805.          while(_loc5_ < _loc9_.length)
  806.          {
  807.             _loc9_[_loc5_] = param1.charCodeAt(_loc5_ * 2) << 8 | param1.charCodeAt(_loc5_ * 2 + 1);
  808.             _loc5_++;
  809.          }
  810.          while(_loc9_.length > 0)
  811.          {
  812.             _loc8_ = [];
  813.             _loc7_ = 0;
  814.             _loc5_ = 0;
  815.             while(_loc5_ < _loc9_.length)
  816.             {
  817.                ┬º┬ºpush(_loc7_);
  818.                ┬º┬ºpush(16);
  819.                if(true)
  820.                {
  821.                   _loc7_ = (┬º┬ºpop() << ┬º┬ºpop()) + _loc9_[_loc5_];
  822.                   _loc6_ = Math.floor(_loc7_ / _loc3_);
  823.                   ┬º┬ºpush(_loc7_);
  824.                   ┬º┬ºpush(_loc6_);
  825.                   if(true)
  826.                   {
  827.                      ┬º┬ºpush(┬º┬ºpop() * _loc3_);
  828.                   }
  829.                   _loc7_ = ┬º┬ºpop() - ┬º┬ºpop();
  830.                   ┬º┬ºpush(_loc8_.length > 0);
  831.                   if(false)
  832.                   {
  833.                      continue;
  834.                   }
  835.                   ┬º┬ºpush(┬º┬ºpop() || 0);
  836.                }
  837.                ┬º┬ºpush(┬º┬ºpop() > ┬º┬ºpop());
  838.                if(┬º┬ºpop())
  839.                {
  840.                   _loc8_[_loc8_.length] = _loc6_;
  841.                }
  842.                _loc5_++;
  843.             }
  844.             _loc4_[_loc4_.length] = _loc7_;
  845.             _loc9_ = _loc8_;
  846.          }
  847.          _loc10_ = "";
  848.          _loc5_ = _loc4_.length - 1;
  849.          while(true)
  850.          {
  851.             if(_loc5_ < 0)
  852.             {
  853.                ┬º┬ºpush(_loc10_);
  854.                break;
  855.             }
  856.             ┬º┬ºpush(_loc10_);
  857.             if(false)
  858.             {
  859.                break;
  860.             }
  861.             _loc10_ = ┬º┬ºpop() + param2.charAt(_loc4_[_loc5_]);
  862.             _loc5_--;
  863.          }
  864.          return ┬º┬ºpop();
  865.       }
  866.       
  867.       public static function rstr_md5(param1:String) : String
  868.       {
  869.          return binl2rstr(binl_md5(rstr2binl(param1),param1.length * 8));
  870.       }
  871.    }
  872. }
  873.